from mcp.server.fastmcp import FastMCP
from datetime import datetime, timedelta
from baidu_mcp_client import BaiduMcpClient


baidu_client = BaiduMcpClient()
mcp = FastMCP(host='0.0.0.0', port=9876)


@mcp.tool()
async def current_time():
    """获取当前日期和时间。当用户需要搜索当前、最新或实时信息时，可首先调用本工具获取当前时间，然后再调用baidu_search工具执行搜索"""
    now_time = datetime.now()
    # now_time += timedelta(hours=8)
    return now_time.strftime('%Y-%m-%dT%H:%M:%S')


@mcp.tool()
async def web_search(query: str) -> str:
    """执行百度搜索
    param query: 搜索查询关键词或短语，用于指定需要搜索的内容。支持自然语言查询，可以包含多个关键词。Agent应该根据用户意图构建合适的查询语句，确保搜索结果的准确性和相关性。最佳实践：1) 使用简洁明确的关键词组合；2) 对于复杂查询，可以拆分为多个简单查询；3) 避免使用过于宽泛或模糊的词语。
    """
    return baidu_client.call_mcp_tool(query)


if __name__ == '__main__':
    mcp.run(transport='streamable-http')

